查看原文
其他

AI聊天机器人之战 ChatGPT /GPT-4/文心一言 性能对比测试谁能笑到最后?

安兔兔 2023-05-19

近期ChatGPT这类AI聊天机器人产品,毫无疑问已经让已经冷却了许久的人工智能重新吸引了大量的关注,孰强孰弱也成为了大家关注的重点。为了验证这些AI对话引擎的性能,安兔兔特别进行了一期针对性测试。        

在AI领域,安兔兔之前就推出过针对手机NPU的AI性能专业测试软件“安兔兔AI评测(AITUTU)”。所以对于AI相关测试来说,安兔兔的AI专家相对于普通用户理解会相对更多一点,因此,我们此次测试的关注点和能力考察相对于普通测试会有些区别。

此次测试,安兔兔基于AI对话引擎能力点要求的不同,将测试分成了六大模块。这些模块分别是:“1.语言理解 \ 2.任务完成 \ 3.常识问题 \ 4.逻辑数学 \ 5.代码能力 \ 6.专业领域”。

这些模块的设计主要遵循了循序渐进的规则,例如语言理解是NLP对话基础的基础,一个AI引擎能否读懂用户发出的内容,决定了后续的工作能不能完成。而任务完成,则是考察从基础任务到相对困难的任务,AI引擎的具体执行能力。剩下的常识问题,逻辑数学,更多是考察引擎灌入训练的数据集是否足够庞大,再往后的代码能力和专业领域知识,则像是考察更加拔高的能力水平。我们换个说法,这就像是一个人从咿呀学语到蹒跚学步,再到学有所成,成长为专业人才的过程。

具体每个模块下,又有诸多细分,具体考题的评判标准分为四档:0/1/2/3,其中0为最差,3为最好,通过这样的分数能够直观的判断AI能力的差异。具体评分细节会在分类中给出。

但需要注意的是,由于无论百度的ERNIE 3.0、还是OpenAI的GPT-3.5 turbo和GPT-4均未开源,所以它们的底层逻辑是如何实现、RLHF调优是如何做到的,目前都处于黑箱状态,而且每次的回答均为机器实时运算得来,我们并不能确保每次的答案都完全相同。所以完全客观就变得难以实现,因此我们无法避免在部分模块中完全排除主观因素的影响,特此注明。

根据以上打分规则和考察内容,我们先揭晓结果,这三款引擎的总成绩如下:

很多人看到这个结果可能会说,这个结果我们也能猜到。但具体的原因,大概就不会有很多人了解了。下面的内容,安兔兔就为大家详细解析每项测试的具体测试目的,以及产生这样结果的原因。

详细测试过程和分模块成绩

1.语言理解

可以说语言理解能力是NLP的主战场,这一部分的表现是各个大模型的基本盘。我们的测试既包括常见NLP的任务,比如文本摘要,阅读理解,关键信息抽取等,还有一些大模型擅长的文本生成能力,像写作生成等。由于大模型强大的端到端的处理能力,我们并未测试只关注中间结果的部分传统NLP的任务,比如实体识别,语法分析等。我们认为随着大模型的能力的提升,一些研究中间结果的NLP任务会逐渐弱化。此外,本次测试我们只关注中文的效果,并未考虑模型的多语言能力。

我们在这项测试中,细分了六项内容,分别为:

1.写作生成:给一个简短要求,生成一定数量的文字。

2.阅读理解:根据给定文本回答问题。

3.复杂语义理解:双关类,修辞类,中文分词类,情绪类,谜语等问题。

4.摘要生成:提供一定长度的话,让引擎产生摘要。

5.信息提取:复杂文本中关键信息提取。

6.多轮理解能力:3-10轮左右对话,对话内容主题有跳转,问题不考察太复杂的推理和常识。

对于每一道题来说,如果完全没理解问题则得0分;问题理解有偏差,回答出现部分错误则得1分;问题理解基本正确得2分;问题理解准确,回答超出预期则获得3分的满分。

先看结论

从此模块的结论上看,ChatGPT 4.0不出意外夺得魁首,但我们发现百度文心一言在此次评测中的表现其实并不算差,大部分项目都能与GPT-3.5 turbo持平,甚至某些项还略有超出。它的能力弱势,则主要集中在摘要生成和信息提取环节,这些大幅拉低了最终的得分,导致结果不太理想。

举个具体的例子,就能发现问题。

例如摘要生成环节中,我们用《史记》中的一篇《萧相国世家》原文854字内容作为输入,让AI产出摘要。此时ChatGPT的两版AI引擎均能精练、并总结翻译内容得出112字和199字的摘要,但文心一言似乎完全没看到我们在文章结尾“这段话产生摘要”的提示,直接将这篇古文的全文翻译、整个贴了过来,而且因为1000字的字数限制,只到1000字就意犹未尽的结束了对话。所以在这道题目的测试中,ChatGPT拿到了3分,文心一言则是0分。这样的结果就像在学生时代的考试,老师在评价试卷时会一而再、再而三的怒斥,“读题!请认真读题!”是的,文心一言此时就是那个不认真读题的孩子。

更有甚者,我们在测试中还见到了这样的情况,当一道题文心一言不会时,就会很实诚的说到, “作为一个人工智能语言模型,我还没学习如何回答这个问题,您可以向我问一些其它的问题,我会尽力帮您解决的。” 要知道ChatGPT的原则,是每个问题都会给出回答,即便不会、也会给乱编一通。这让我不禁想到了当年语文老师曾经说过的话,“不会就编啊,随便编一些,多少也会给点分!”

说过差的部分,我们再来看看文心的优势项。例如多轮理解,就是考察的是AI聊天机器人颇受关注的一项能力。对于寻求答案的用户,一个简单的关键词往往难以概括所思所想,此时多轮对话能力就可以帮助他们来整理思绪,并在此过程中获得更适合自己的结果。而AI理解用户的深层意图、并提供反馈,这是多轮理解能力的核心。在这项测试中,我们发现百度文心一言在涉及到古文和中国传统内容时,输出的内容就丝毫不弱ChatGPT。

我们认为,在这个环节文心需要改进的地方在于,首先,当面对用户进行超长内容输入时,应该尽量关注在文字最后结尾处的内容(条件),也就是用户对以上文字所提出的要求。而不要被过长的文字内容所干扰,故而造成回答错误。其次,未尝不可学习一下ChatGPT不要脸的部分,当一道题不会的时候,也可以根据当前已知数据的判断,一本正经的编个答案出来,毕竟,有答案就有可能不是0分,而不回答,肯定拿不到分。

2.任务完成

任务完成部分侧重的是用户通过对一个任务指令的描述,要求模型去完成的情况。从GPT3以来,大模型受到关注一个重要的原因就是强大的instruction following的能力,完成人类给定的非特定性任务,比如给定表格按要求进行处理,甚至描述一个很罕见的任务让模型去做,这种few-shot learning的能力极大地提高了模型的通用性。

在这项测试中,我们给AI安排两个考察点,分别是:

1. 常见任务:例如表格理解,角色扮演等大家能想到的日常想要模型做的常见的事。

2. 特定任务:通过文本描述非常规任务,也包括给出例子让模型完成的事。

我们在这一项目的测试中,判定如果AI能够胜任常见任务,可完全取代人工就能得3分;AI可以基本完成任务,但可能有不重要的小错误、只需简单加工,即可得2分;AI如果仅能部分完成任务,需人工校正得1分;如果AI完全完全不能理解题意,结果不能完成则为0分。

同样是先看结论:

无论特定任务还是常见任务,ChatGPT3.5与4.0区别不大,但百度文心的表现均不太理想,具体问题其实还要归根于上一个测试项中的语言理解能力中的问题,以及训练内容的丰富程度。

举例来说,特定任务里,我们要求按照“福建人(hu jian ren),依据福建人混淆“f”和“h”的规则,标注以下词组的发音:南非、防护服”这道题目理论上并不复杂。

ChatGPT3.5的逻辑了解问题是什么,但答案不够完备,没有提供声调。4.0版本则提供了超出预期的答案,”南非(Nán Fēi):南惠(Nán Huī)  防护服(Fáng Hù Fú):芳护夫(Fāng Hù Fū)”。

不仅正确,甚至还提供了建议,提醒该说法并非普通话,普通话还是应该使用标准发音。但文心则未能读懂题目,给出的答案只是单纯复述了问题,故未能得分。

另外一个例子包括,我们要求引擎 “我会给你一句话,请把这句话重复两遍,第一遍完全倒过来写,第二遍把第一遍的结果再完全倒过来。这句话是:我们期待双方可以进一步加深合作。”

ChatGPT两个版本均给出的答案完全相同,完全理解了语义,并给出了正确的结果。但文心在这种文字顺序问题上的表现就有所欠缺,似乎是完全没有理解问题的意思,导致第一遍和第二遍的答案均是错误的。

3.常识问题

知识型测试体现了大模型背后强大的知识存储和理解能力,这部分能力可以直接帮助人类快速解答问题。我们这里既包括包括了较简单的常识类和也包括了较复杂的专业类知识。尤其在专业知识上,我们还通过描述一些现象,让模型运用专业知识去解答。这种逆向测试可以体现模型对知识的理解力。

在这项测试中,我们细分了5部分内容,其中包括:

1.客观常识事实(高中和大学生了解的):比较客观的事实性问题,主要看是非对错

2.主观常识:相对主观的问题,主要看模型回复的合理性逻辑性和质量

3.因果推断:简单的因果关系

4.复杂事实常识:两个或以上的事实关联的组合问题

5.事实错误:提问中本身就有错误,看模型是否能发现

由于是针对事实进行回答,所以我们设定的评测标准,回答准确、有理有据,能解决问题得3分;回答基本准确,偶尔有地方不是很明确得2分;回答不能直接解决问题,但提供一定信息得1分;罔顾事实则为0分。

结论:

这项测试其实是非常有意思的地方。大部分情况这三个引擎对于常识性问题的回答均能令人满意,在部分情况下,百度文心一言的表现甚至要比chatGPT 3.5还要略好一点。例如我们问到一个科技常识问题,“高通8Gen1处理器的上一代是什么。”文心一言信心满满告知正确结果,高通骁龙888。而ChatGPT3.5则说了一个错误的型号。常识问题:“明代科举考试主要考哪些书?”文心一言顺利说出四书五经,还给详细列出了四书五经每一部的名称和内容。ChatGPT3.5则给了一堆参考书和可能会考到的历史书。只有ChatGPT 4.0才给出了正确的回复和注解。

不过为了考察几个引擎的能力,我们在部分题目上埋了坑,甚至用了不少网上大家一看就知道的段子和脑筋急转弯,最可怜的“傻白甜”百度文心几乎逢坑必踩,但让我们出乎意料的是ChatGPT4,在灌入的可怕数据量之后,ChatGPT4在几个脑筋急转弯和事实错误环节,几乎第一句话就能揭穿我们设置的陷阱。

例如在因果推断环节,我们用了一个小朋友都知道的脑筋急转弯,“树上有9只鸟,猎人开枪打死1只,树上还剩几只鸟?” ChatGPT3.5和百度文心仿佛小学生附身,都在认认真真的算数学题,求得结果8只鸟。但ChatGPT4.0毫不留情揭穿谜底:“树上不剩鸟,因为开枪的声音会把其他鸟吓飞。”

另外的一个事实错误的例子里,我们认真求教:“解放战争期间,八路军都参加过哪几场重要战役?”。原以为这三个引擎中百度文新应该更了解国情,但它和ChatGPT3.5都没弄明白解放战争和抗日战争的区别,均在举抗日战争期间的例子。只有ChatGPT4.0直接指出,解放战争时期(1946-1949),八路军已经改编为解放军了,并指出了解放战争期间的三大战役。

其余几个类似的例子不再一一列举,但作为“人之初,性本善”的文心一言来讲,真的要认真考虑一下用户会不会主动提出错误问题的情况。

4.逻辑数学

逻辑数学和代码部分比较相关,都是考察模型的推理能力。这部分对模型的要求较高,一般认为代码的训练和“思维链” (Chain of Thought) 技术会对逻辑推理有明显帮助。目前看来这似乎是大模型特有的优势,基本上百亿参数以下的模型在这一部分表现都欠佳。

在这项测试中,我们准备了五项内容的考量,分别是:

1.简单逻辑推理:简短的逻辑问题

2.文字逻辑:给大段文字中蕴含的逻辑问题

3.逻辑错误:题目本身有逻辑错误或陷阱,看模型是否能发现

4.数学(高中以上,偏专业,考察数学知识)

5.数学(初等数学计算,但较多推理,类似小学初中的应用题,考察逻辑推理)

在这一部分的测试中,文字逻辑和数学能力是最典型的指标,AI如果回答完全准确得3分;回答基本正确,但有微小错误得2分;基本理解题意,但有明显错误得1分;完全不理解或重大错误,则是0分。

此模块具体测试结果如下:

以具体情况举例:

面对“观察下列个数:1、2、4、8、16......试按此规律写出第11个数”,这个非常经典的小学数学知识等比数列问题,ChatGPT和GPT-4都找出了这组数字的规律,并给出了正确答案“1024”,而文心一言则没有发现其中的规律,给出的答案是“22”。所以完全正确且给出了解题过程的ChatGPT和GPT-4得到3分,理解题目、却出错的文心一言只有1分。

接下来的这题就有一定挑战了,“已知三角形ABC三边分别为a,b,c,且c的平方=bcCOSA+caCOSB+abCOSC,求三角形的形状”,已经是高中数学的水准。但只有GPT-4正确计算出这是直角三角形,ChatGPT和文心一言都只认为它是普通三角形。所以GPT-4得到满分,ChatGPT和文心各得1分。

在逻辑能力上,我们选择了一个较为简单的题目,“3个人3天喝了3桶水,9个人9天喝了几桶水”。GPT-4和文心一言对此都给出了正确答案,9个人9天喝了27桶水,且附上了推理过程,均得到3分。而ChatGPT尽管进行了推理,但推理结果出错,得分仅1分。

5.代码能力

自深度学习使得AI技术进入跨越式发展阶段以来,业界就一直在尝试用AI来写代码。此次在评测ChatGPT、GPT-4和文心一言的代码能力中,完全无需人工干预、顺利完成任务可以得到3分;只需简单人工干预或简单debug即可完成目标,得到2分;需要人工多轮干预debug才可以基本完成,则为1分;完全错误为0分。

此项目我们准备了两项子测试项,分别如下:

1.简单代码完成:常见Leetcode easy级别的问题,用各种语言。覆盖主要不同类型,Python, C++, SQL,汇编等

2.代码阅读和debug:给定一段代码,解释意思,并找出简单bug。或者给出代码和一段编译错误信息,找出bug。或者把Python转成C++

此模块具体测试结果如下:

在此次测试中,我们选择的题目有“写C程序计算21的阶乘”。ChatGPT在文字中给出了21!这个正确结果,但代码本身出现了BUG,并未意识到C语言中的unsigned long long类型只用来表示20以内的阶乘数据,所以它的得分是1分。文心一言也实现了用C语言编写程序,但没有意识到计算有溢出,导致了最终结果出错,也只得到了1分。而GPT-4同样给出了正确答案,且代码本身也有BUG,但它意识到了21!的结果可能太大,只不过自信的认为unsigned long long字长足够,所以它的得分是2分。

在程序员日常不可避免的debug上,我们选择了一段代码让AI检查是否存在bug。结果ChatGPT和GPT-4都发现了题目中的代码存在浮点精度问题,且完成了debug,所以两者都得到了满分3分。文心一言则在debug上出现了问题,并未识别出bug所在,也没有进行debug,因此只有0分。其它情况与此类似,基本上我们设置的几道题目百度文心均未能找出问题,也无法完成debug工作。从目前来看,百度文心后续需要加强代码相关的能力。

6.专业领域

随着ChatGPT的走红,许多人心中也有这样一个问题,那就是碎片化、螺丝钉化、机械化的工作,诸如翻译、文秘会出现一定程度的职业危机,那么更专业的领域会不会被AI不断侵蚀呢?抱着这样的疑问,我们对专业领域进行了一些考量,主要内容分为以下两部分,了解和应用:

1.知识概念:询问专业知识和概念(大学专业水平,覆盖人文理工各学科)

2.知识应用:通过事例描述,获得解答。描述可尽量详细,清晰(大学专业水平,覆盖人文理工各学科)

结果如下:

我们都知道专业的知识,很少在网上能找到免费的分享,这对于AI引擎来说,往往很难拿到真正的专业知识数据。

举例来说,为了降低问题的难度,我们选择了科技领域的问题进行了测试,题目为“手机系统的启动过程是什么?每个阶段都做了什么?”这个问题对于一般用户而言无疑是个不折不扣的“黑箱”,但是对于这个领域的从业者而言却显然不是件难事。

ChatGPT与GPT-4都给出了一部智能手机从加电自检到Bootloader,再到将系统内核加载到内存并初始化,最终启动用户界面的完整流程。而文心一言则解释了“U盘启动”这一应用在PC上的系统启动模式。在这个问题上ChatGPT3.5和GPT4.0都拿到了3分,而文心一言则是出现答非所问的情况,显然是未能获取到该行业的技术资料。而其它情况与此类似,部分行业专业知识上有部分存在错误或知识不具备导致无法回答的例子,毕竟这些内容大多都不是免费获取的。

总结:

通过结果不难发现,对于已然包罗万象的大语言模型而言,语言理解 \ 任务完成 \ 常识问题 \ 逻辑数学 \ 代码能力 \ 专业领域 这六大类型的测试,虽然并不能囊括它们的能力边界,但已经足以让大家管中窥豹,看到不同类型的大语言模型确实具备了改变人类工作范式的能力。

作为OpenAI刚刚迭代的新品,ChatGPT4.0确实可以称得上是全方位的强大,即便还谈不上上知天文下知地理,但在智力水平上至少已经表现出了青少年的水准,毫无疑问能够称得上是“黑科技”。ChatGPT3.5的表现则中规中矩,有一定的逻辑能力,也可以从多轮对话中敏锐的抓住重点。

虽然文心一言现阶段确实没有ChatGPT4.0和3.5那么强大,而且在数据覆盖度和程序上可能还存在一些bug,导致了一些问题。但让我们惊喜的是,它在某些方面的能力并不弱于ChatGPT3.5。而且它的出现解决了国内市场AI行业从0到1的突破,在解决了有和无这个问题后,用未来可期来形容显然并不过分。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存